home *** CD-ROM | disk | FTP | other *** search
/ PC Media 20 / PC MEDIA CD20.iso / share / prog / firedemo / fire.asm < prev    next >
Assembly Source File  |  1993-05-10  |  7KB  |  202 lines

  1. ; ------------------------------ FIRE.ASM ------------------------------
  2. ; Bye Jare of VangeliSTeam. Want more comments? Write'em. O:-)
  3.  
  4.  
  5.         .MODEL SMALL
  6.         .STACK 400
  7.         DOSSEG
  8.         LOCALS
  9.  
  10.         .DATA
  11.  
  12. FirePal LABEL BYTE
  13. ;  Fire palette, colors 0-63 ------------
  14.  
  15.         DB        0,   0,   0,   0,   1,   1,   0,   4,   5,   0,   7,   9
  16.     DB      0,   8,  11,   0,   9,  12,  15,   6,   8,  25,   4,   4
  17.     DB     33,   3,   3,  40,   2,   2,  48,   2,   2,  55,   1,   1
  18.     DB     63,   0,   0,  63,   0,   0,  63,   3,   0,  63,   7,   0
  19.     DB     63,  10,   0,  63,  13,   0,  63,  16,   0,  63,  20,   0
  20.     DB     63,  23,   0,  63,  26,   0,  63,  29,   0,  63,  33,   0
  21.     DB     63,  36,   0,  63,  39,   0,  63,  39,   0,  63,  40,   0
  22.     DB     63,  40,   0,  63,  41,   0,  63,  42,   0,  63,  42,   0
  23.     DB     63,  43,   0,  63,  44,   0,  63,  44,   0,  63,  45,   0
  24.     DB     63,  45,   0,  63,  46,   0,  63,  47,   0,  63,  47,   0
  25.     DB     63,  48,   0,  63,  49,   0,  63,  49,   0,  63,  50,   0
  26.     DB     63,  51,   0,  63,  51,   0,  63,  52,   0,  63,  53,   0
  27.     DB     63,  53,   0,  63,  54,   0,  63,  55,   0,  63,  55,   0
  28.     DB     63,  56,   0,  63,  57,   0,  63,  57,   0,  63,  58,   0
  29.     DB     63,  58,   0,  63,  59,   0,  63,  60,   0,  63,  60,   0
  30.     DB     63,  61,   0,  63,  62,   0,  63,  62,   0,  63,  63,   0
  31.  
  32.  
  33. ByeMsg  DB 'FIRE was coded bye Jare of VangeliSTeam, 9-10/5/93', 13, 10
  34.         DB 'Sayonara', 13, 10, 10
  35.         DB 'ELYSIUM music composed by Jester of Sanity (an Amiga demo group, I think)', 13, 10
  36.         DB 'The music system you''ve just been listening is the VangeliSTracker 1.2b', 13, 10
  37.         DB 'VangeliSTracker is Freeware (no money required), and distributed in source code', 13, 10
  38.         DB 'If you haven''t got your copy of the VangeliSTracker, please go to your', 13, 10
  39.         DB 'nearest BBS and get it NOW', 13, 10
  40.         DB 'Also, don''t forget that YOU can join the VangeliSTeam. Contact the', 13, 10
  41.         DB 'VangeliSTeam in the following addresses: ', 13, 10, 10
  42.         DB '  Mail:     VangeliSTeam                          │ This demo is dedicated to', 13, 10
  43.         DB '            Juan Carlos Arévalo Baeza             │        Mark J. Cox', 13, 10
  44.         DB '            Apdo. de Correos 156.405              │            and', 13, 10
  45.         DB '            28080 - Madrid (Spain)                │      Michael Abrash', 13, 10
  46.         DB '  Internet: jarevalo@moises.ls.fi.upm.es          │ At last, the PC showed good', 13, 10
  47.         DB '  Fidonet:  2:341/27.16, 2:341/15.16, 2:341/9.21  │ for something.', 13, 10, 10
  48.         DB 'Greetings to all demo groups and MOD dudes around.', 13, 10
  49.         DB '$'
  50.  
  51.  
  52.         UDATASEG
  53.  
  54. Imagen  DB 80*50 DUP (?)
  55. Imagen2 DB 80*50 DUP (?)
  56.  
  57.         .CODE
  58.         .STARTUP
  59.  
  60.         CLD
  61.         MOV     AX,13h
  62.         INT     10h
  63.         CLI
  64.         MOV     DX,3c4h
  65.         MOV     AX,604h                 ; "Unchain my heart". And my VGA...
  66.         OUT     DX,AX
  67.         MOV     AX,0F02h                ; All planes
  68.         OUT     DX,AX
  69.  
  70.         MOV     DX,3D4h
  71.         MOV     AX,14h                  ; Disable dword mode
  72.         OUT     DX,AX
  73.         MOV     AX,0E317h               ; Enable byte mode.
  74.         OUT     DX,AX
  75.         MOV     AL,9
  76.         OUT     DX,AL
  77.         INC     DX
  78.         IN      AL,DX
  79.         AND     AL,0E0h                 ; Duplicate each scan 8 times.
  80.         ADD     AL,7
  81.         OUT     DX,AL
  82.  
  83.         MOV     DX,3c8h                 ; Setup palette.
  84.         XOR     AL,AL
  85.         OUT     DX,AL
  86.         INC     DX
  87.         MOV     CX,64*3
  88.         MOV     SI,OFFSET FirePal       ; Prestored...
  89. @@pl1:
  90.          LODSB
  91.          OUT    DX,AL
  92.          LOOP   @@pl1
  93.         MOV     AL,63
  94.         MOV     CX,192*3                ; And white heat.
  95. @@pl2:
  96.          OUT    DX,AL
  97.          LOOP   @@pl2
  98.         STI
  99.  
  100.         MOV     AX,DS
  101.         MOV     ES,AX
  102.         MOV     DI,OFFSET Imagen        ; Cleanup both Images.
  103.         MOV     CX,80*50
  104.         XOR     AX,AX
  105.         REP STOSW
  106.  
  107. MainLoop:
  108.         MOV     DX,3DAh                 ; Retrace sync.
  109. @@vs1:
  110.         IN      AL,DX
  111.         TEST    AL,8
  112.         JZ      @@vs1
  113. @@vs2:
  114.         IN      AL,DX
  115.         TEST    AL,8
  116.         JNZ     @@vs2
  117.  
  118.         PUSH    DS
  119.         POP     ES
  120.         MOV     SI,81+OFFSET Imagen     ; Funny things start here. 8-P
  121.         MOV     DI,81+OFFSET Imagen2
  122.         MOV     CX,48*80-2
  123.         XOR     BH,BH
  124. @@lp:
  125.         XOR     AX,AX
  126.         ADD     AL,-1[SI]
  127.         ADC     AH,BH
  128.         ADD     AL,-80[SI]
  129.         ADC     AH,BH
  130.         ADD     AL,-79[SI]
  131.         ADC     AH,BH
  132.         ADD     AL,-81[SI]
  133.         ADC     AH,BH
  134.         ADD     AL,1[SI]
  135.         ADC     AH,BH
  136.         ADD     AL,80[SI]
  137.         ADC     AH,BH
  138.         ADD     AL,79[SI]
  139.         ADC     AH,BH
  140.         ADD     AL,81[SI]
  141.         ADC     AH,BH
  142.         ROR     AX,1
  143.         ROR     AX,1
  144.         ROR     AX,1
  145.         TEST    AH,60h                  ; Wanna know why 60h? Me too.
  146.         JNZ     @@nx                    ; This is pure experience.
  147.          CMP    DI,46*80+OFFSET Imagen2 ; And this was a bug.
  148.          JNC    @@dec                   ; This one's by my cat.
  149.           OR    AL,AL                   ; My dog coded here too.
  150.           JZ    @@nx                    ; I helped my sister with this one.
  151. @@dec:
  152.            DEC  AL                      ; Yeah! Cool a bit, please.
  153. @@nx:
  154.         INC     SI
  155.         STOSB
  156.         LOOP    @@lp                    ; New image stored in Imagen2.
  157.  
  158.         MOV     SI,80+OFFSET Imagen2    ; Scrolling copy. :-)
  159.         MOV     DI,OFFSET Imagen
  160.         MOV     CX,40*48
  161.         REP     MOVSW
  162.  
  163.         MOV     SI,80*43+OFFSET Imagen2 ; Get rid of some ashes.
  164.         MOV     CX,6*80
  165.         MOV     AH,22
  166. @@rcl:
  167.          MOV    AL,[SI]
  168.          CMP    AL,15
  169.          JNC    @@rcn
  170.           SUB   AL,AH
  171.           NEG   AL
  172.           MOV   [SI],AL
  173. @@rcn:
  174.          INC    SI
  175.          LOOP   @@rcl
  176.  
  177.         MOV     SI,80+OFFSET Imagen2    ; And show it.
  178.         MOV     DI,0
  179.         MOV     AX,0A000h
  180.         MOV     ES,AX
  181.         MOV     CX,40*48
  182.         REP     MOVSW
  183.  
  184.         MOV     AH,1
  185.         INT     16h
  186.         JNZ     Bye
  187.         JMP     MainLoop
  188. Bye:
  189.         XOR     AH,AH
  190.         INT     16h
  191.         MOV     AX,3
  192.         INT     10h
  193.         MOV     DX,OFFSET ByeMsg
  194.         MOV     AH,9
  195.         INT     21h
  196.         MOV     AX,4C00h
  197.         INT     21h
  198.  
  199.         END
  200. ; ------------------------------ End of FIRE.ASM ---------------------------
  201.  
  202.